﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MINERP.MODEL.FoundationModel;
using MINERP.MODEL.StartOrder;
using ServiceInterfaces.DataContracts;

namespace MINERP.StartOrder.IView
{
    public interface IMainView
    {
        #region 属性

        /// <summary>
        /// 当前商户纸型
        /// </summary>
        PaperType_Info PaperTypeInfo { get; }

        /// <summary>
        /// 当前商户纸面
        /// </summary>
        PaperFace_Info PaperFaceInfo { get; }

        /// <summary>
        /// 开单用户Id
        /// </summary>
        int UserId { get; }


        /// <summary>
        /// 开单是否成功
        /// </summary>
        bool OrderSuccessfull { get; set; }

        /// <summary>
        /// 订单包
        /// </summary>
        string OrderBagCode { get; set; }
        //是否有文件在上传
        bool IsUploadPhoto { get; set; }

        #endregion

        #region 方法


        /// <summary>
        /// 绑定商户
        /// </summary>
        void BindShop(List<ShopInfo_Order> listShop);
        /// <summary>
        /// 选中商户
        /// </summary>
        void SelectShop(string ShopName);
        /// <summary>
        /// 绑定待开单产品文件夹
        /// </summary>
        /// <param name="listOrderInfo">产品列表</param>
        /// <param name="flag"></param>
        void BindOrderProduct(List<OrderInfo> listOrderInfo,bool flag);

        /// <summary>
        /// 绑定商户产品模版
        /// </summary>
        /// <param name="productTempleteInfo"></param>
        void BindProudctTemplete(List<ProductTempleteInfo> listProductTempleteInfo);

        /// <summary>
        /// 绑定商户已勾选纸型
        /// </summary>
        /// <param name="listPaperTypeInfo"></param>
        void BindShopPaperType(List<PaperType_Info> listPaperTypeInfo);

        /// <summary>
        /// 绑定有效纸面
        /// </summary>
        /// <param name="listPaperFaceInfo"></param>
        void BindPaperFace(List<PaperFace_Info> listPaperFaceInfo);

        /// <summary>
        /// 绑定打印机
        /// </summary>
        /// <param name="printerList"></param>
        void BindPrinter(List<ServiceInterfaces.DataContracts.Printer_Info> printerList);

        /// <summary>
        /// 加载开单界面时绑定所有打印机
        /// </summary>
        /// <param name="printerList"></param>
        void BinAllPrinter(List<ServiceInterfaces.DataContracts.Printer_Info> printerList);

        /// <summary>
        /// 绑定委外商
        /// </summary>
        /// <param name="outshopList"></param>
        void BindOutShop(List<OutProcessShopInfo> outshopList);

        /// <summary>
        /// 绑定附件收费项目列表
        /// </summary>
        /// <param name="CommonChargeNameList"></param>
        void BindCommonChargeItem(List<CommonChargeItemInfo> CommonChargeInfoList);

        /// <summary>
        /// 设置附加收费项目
        /// </summary>
        /// <param name="techCommonChargeItemInfo"></param>
        void SetCommonChargeItem(List<TechCommonChargeItemInfo> techCommonChargeItemInfo,List<WorkOrderFlowListInfo> workFlowInfoList);

        /// <summary>
        /// 绑定等待移动产品列表
        /// </summary>
        /// <param name="moveOrderInfoList"></param>
        void BindMoveOrderInfo(List<MoveOrderInfo> moveOrderInfoList); 

        /// <summary>
        /// 绑定产品纸型
        /// </summary>
        /// <param name="listPaperType"></param>
        void BindOrderInfoPaperType(List<PaperType_Info> listPaperType);

        /// <summary>
        /// 绑定产品纸面
        /// </summary>
        /// <param name="listPaperFace"></param>
        void BindOrderInfoPaperFace(List<PaperFace_Info> listPaperFace);

        /// <summary>
        /// 绑定照片纸型
        /// </summary>
        /// <param name="listPaperType"></param>
        void BindPhotoInfoPaperType(List<PaperType_Info> listPaperType);

        /// <summary>
        /// 绑定照片纸面
        /// </summary>
        /// <param name="listPaperFace"></param>
        void BindPhotoInfoPaperFace(List<PaperFace_Info> listPaperFace);

        /// <summary>
        /// 绑定全部有效纸型
        /// </summary>
        /// <param name="_userList"></param>
        void BindUserInfoList(List<User_Info> userList);

        /// <summary>
        /// 刷新待开单产品
        /// </summary>
        void RefreshOrderInfo();

        /// <summary>
        /// 刷新待开单产品照片
        /// </summary>
        void RefreshPhotoInfo();
        /// <summary>
        /// 清除商户助记码
        /// </summary>
        void ClearShopMin();
        /// <summary>
        /// 刷新当前照片
        /// </summary>
        /// <param name="oi"></param>
        void RefreshPhotoInfo(OrderInfo oi);
        #endregion

        
    }
}
